Separating Concerns with First-Class Namespaces∗
نویسندگان
چکیده
As applications evolve, it becomes harder and harder to separate independent concerns. Small changes to a software system increasingly affect different parts of the source code. AOP and related approaches offer various ways to separate concerns into concrete software artifacts, but what is the essence of this process? We claim that first-class namespaces — which we refer to as forms — offer a suitable foundation for separating concerns by offering simple yet expressive mechanisms for defining composable abstractions. We demonstrate how forms help a programmer to separate concerns by means of practical examples in Piccola, an experimental composition language.
منابع مشابه
Explicit Namespaces
A namespace is a mapping from labels to values. Most programming languages support different forms of namespaces, such as records, dictionaries, objects, environments, packages and even keyword-based parameters. Typically only a few of these notions are first-class, leading to arbitrary restrictions and limited abstraction power in the host language. Piccola is a small language that unifies var...
متن کاملExplicit Namespaces1
A namespace is a mapping from labels to values. Most programming languages support different forms of namespaces, such as records, dictionaries, objects, environments, packages and even keyword-based parameters. Typically only a few of these notions are first-class, leading to arbitrary restrictions and limited abstraction power in the host language. Piccola is a small language that unifies var...
متن کاملDynamic Modules in Higher-Order Languages
Providing programmers the ability to construct meaningful abstractions to help manage complexity is a serious language design issue. Many languages define a module system that can be used to specify distinct namespaces, and build user-defined data abstractions; however, few languages support dynamic modules, i.e., modules which are true first-class objects. In this paper, we define a module sem...
متن کاملinterActors: A Model for Separating Complex Communication Concerns in Multiagent Computations
Multiagent computations increasingly require complex and diverse interactions. Existing approaches to separating these communication concerns offer static protocols, which cannot handle dynamically evolving numbers and sets of communicating agents, and leave complex initialization steps mixed in with functional concerns. We present interActors, a model for separating complex communication conce...
متن کاملPreliminary Proceedings. Preface
The programming languages of today are stuck in a deep rut that has developed over the past 50 years. Although we are faced with new challenges posed by enormous advances in hardware and internet technology, we continue to struggle with old-fashioned languages based on rigid, static, closed-world file-based views of programming. We argue the need for a new class of dynamic languages that suppor...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004